home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / tex / mf / inputs / u_wash.mf < prev    next >
Text File  |  1993-11-28  |  11KB  |  248 lines

  1. % This is the University of Washington collection of mode_defs, and some
  2. % other things as well. This file was created on 24 January, 1988
  3. % by Pierre MacKay, mackay@june.cs.washington.edu
  4. % Some of the modes have never actually been tested
  5.  
  6. base_version:=base_version&"/U_Wash";
  7.  
  8. input white_setup               
  9.  
  10. % if a mode_def includes the statement: let font_setup = white_setup,
  11. % it will replace the cmbase.mf font_setup with this corrected version
  12.  
  13. mode_def help =               % What modes exist in this preload?
  14.  for i=1 upto number_of_modes:
  15.    message mode_name[i];
  16.  endfor; 
  17.  save ?; % only use this once.  it doesn't make sense to repeat
  18. enddef;
  19.  
  20. let ? = help_;
  21.  
  22. % Canon CX mode: for the Laser-writer (same as WAITS.MF Imagen)
  23. mode_def CanonCX =
  24.  proofing:=0;                   % no, we're not making proofs
  25.  fontmaking:=1;                 % yes, we are making a font
  26.  tracingtitles:=0;              % no, don't show titles at all
  27.  pixels_per_inch:=300;          % the new Canon engine at 300/inch
  28.  blacker:=0;                    % Canon engine is black enough
  29.  fillin:=.2;                    % very small compensation for diagonal fillin
  30.  o_correction:=.6;              % but don't overshoot as much
  31.  enddef;
  32.  
  33. % Ricoh 4080: for the TI Omnilaser (Stan Osborne's values TUGboat 8,2,134)
  34. mode_def RicohFourZeroEightZero =
  35.  let font_setup=white_setup;    % use the write-white font_setup
  36.  proofing:=0;                   % no, we're not making proofs
  37.  fontmaking:=1;                 % yes, we are making a font
  38.  tracingtitles:=0;              % no, don't show titles at all
  39.  pixels_per_inch:=300;          % Ricoh write-white engine.
  40.  blacker:=.2;                   % Don't overblack the small fonts
  41.  fillin:=-.2;                   % reverse compensation for diagonal fillin
  42.  o_correction:=.5;              % but don't overshoot as much
  43.  enddef;
  44.  
  45. % Varityper 600: for the Varityper Laser 600.
  46. mode_def VarityperSixZeroZero =
  47.  proofing:=0;                   % no, we're not making proofs
  48.  fontmaking:=1;                 % yes, we are making a font
  49.  tracingtitles:=0;              % no, don't show titles at all
  50.  pixels_per_inch:=600;          % Good but not perfect
  51.  blacker:=0;                    % Seems black enough. Lighter than 300dpi
  52.  fillin:=0;                     % but it ought to be.  Closer to true
  53.  o_correction:=0;               % Modern proportions.  Real problem is
  54.  enddef;                        % toner irregularity
  55.  
  56. % Canon LBP 10: for the Symbolics LGP-10 (same as WAITS.MF canon)
  57. mode_def CanonLBP =
  58.  proofing:=0;                   % no, we're not making proofs
  59.  fontmaking:=1;                 % yes, we are making a font
  60.  tracingtitles:=0;              % no, don't show titles at all
  61.  pixels_per_inch:=240;          % the old Canon engine at 240/inch
  62.  blacker:=.2;                   % make pens a wee bit blacker
  63.  fillin:=.2;                    % compensate for diagonal fillin
  64.  o_correction:=.4;              % but don't overshoot as much as lowres
  65.  enddef;
  66.  
  67. mode_def crs =                  % crs mode: for the Alphatype CRS (WAITS.MF)
  68.   proofing:=0;                  % no, we're not making proofs
  69.  fontmaking:=1;                 % yes, we are making a font
  70.  tracingtitles:=1;              % yes, show titles online
  71.  begingroup interim warningcheck:=0;  % (we need to go past 4096)
  72.   pixels_per_inch:=4000+4000/3 endgroup;  % HIGH res
  73.  blacker:=4;                    % make pens a lot blacker
  74.  fillin:=0;                     % but don't compensate for fillin
  75.  o_correction:=1;               % and keep the full overshoot
  76.  enddef;
  77.  
  78. mode_def OneTwoZero=            % Micro-TeX, (maybe bitgraph and sun)
  79.  proofing:=0;                   % no, we're not making proofs
  80.  fontmaking:=1;                 % yes, we are making a font
  81.  tracingtitles:=0;              % no, don't show titles in the log
  82.  pixels_per_inch:=120;          % for the 120pxl fonts
  83.  blacker:=.35;                  % make pens a bit blacker (Karl Berry's value)
  84.  fillin:=.1;                    % and compensate for diagonal fillin
  85.  o_correction:=.3;              % but don't overshoot much
  86.  enddef;
  87.  
  88. mode_def bitgraph =             % bitgraph and sun (the original settings)
  89.  proofing:=0;                   % no, we're not making proofs
  90.  fontmaking:=1;                 % yes, we are making a font
  91.  tracingtitles:=0;              % no, don't show titles in the log
  92.  pixels_per_inch:=118;          % for the oversize *.590pxl fonts
  93.  blacker:=.55;                  % make pens a bit blacker
  94.  fillin:=.1;                    % and compensate for diagonal fillin
  95.  o_correction:=.3;              % but don't overshoot much
  96.  enddef;
  97.  
  98. mode_def sun =                  % bitgraph and sun screens (true size)
  99.  proofing:=0;                   % no, we're not making proofs
  100.  fontmaking:=1;                 % yes, we are making a font
  101.  tracingtitles:=0;              % no, don't show titles in the log
  102.  pixels_per_inch:=100;          % try it to see if it will do
  103.  blacker:=.35;                  % make pens a bit blacker (Karl Berry's value)
  104.  fillin:=.1;                    % and compensate for diagonal fillin
  105.  o_correction:=.3;              % but don't overshoot much
  106.  enddef;
  107.  
  108. % Three Macintosh values -- Pure guesswork, since no conversion
  109. % program available.
  110.  
  111. mode_def truemac=
  112. screens (true size)
  113.  proofing:=0;                   % no, we're not making proofs
  114.  fontmaking:=1;                 % yes, we are making a font
  115.  tracingtitles:=0;              % no, don't show titles in the log
  116.  pixels_per_inch:=72;           % too small to be really useful
  117.  blacker:=.35;                  % make pens a bit blacker (Who knows?)
  118.  fillin:=.1;                    % and compensate for diagonal fillin
  119.  o_correction:=.3;              % but don't overshoot much
  120.  enddef;
  121.  
  122. mode_def bettermac =            % same as a magstep up from preceding
  123.  proofing:=0;                   % no, we're not making proofs
  124.  fontmaking:=1;                 % yes, we are making a font
  125.  tracingtitles:=0;              % no, don't show titles in the log
  126.  pixels_per_inch:=86.4;         % Considerable improvement at this resolution
  127.  blacker:=.35;                  % make pens a bit blacker (Karl Berry's value)
  128.  fillin:=.1;                    % and compensate for diagonal fillin
  129.  o_correction:=.3;              % but don't overshoot much
  130.  enddef;
  131.  
  132. mode_def imagewriter =          % could be reached by magsteps from 100 or 120
  133.  proofing:=0;                   % no, we're not making proofs
  134.  fontmaking:=1;                 % yes, we are making a font
  135.  tracingtitles:=0;              % no, don't show titles in the log
  136.  pixels_per_inch:=144;          % Image-writer is twice screen density
  137.  blacker:=0;                    % assume same as Epson owing to ink flow
  138.  fillin:=0.3;                   % try correcting fillin at this resolution
  139.  o_correction:=.2;              % don't overshoot much
  140.  enddef;
  141.  
  142. % End of Macintosh values
  143.  
  144. mode_def epson =  % Epson (Charles Karney's values TUGboat 8,2 p. 133)
  145.  proofing:=0;                   % no, we're not making proofs
  146.  fontmaking:=1;                 % yes, we are making a font
  147.  tracingtitles:=0;              % no, don't show titles in the log
  148.  pixels_per_inch:=240;          % lowres
  149.  blacker:=0;                    % don't make the pens any blacker
  150.  fillin:=0;                     % and don't compensate for fillin
  151.  o_correction:=.2;              % but suppress most overshoots
  152.  aspect_ratio:=9/10;            % 216 dots/inch vertical
  153.  enddef;
  154.  
  155. % This pair is hopeful, that maybe Ultre*setter may become
  156. % usable one day
  157.  
  158. mode_def ultre =                % Ultre*setter normal 1200dpi good fonts.
  159.  proofing:=0;                   % no, we're not making proofs
  160.  fontmaking:=1;                 % yes, we are making a font
  161.  tracingtitles:=0;              % no, don't show titles at all
  162.  pixels_per_inch:=1200;         % the normal 1200 dot/inch font
  163.  blacker:=0;                    % probably unnecessary at this resolution
  164.  fillin:=0;                     % This unneeded too
  165.  o_correction:=0;               % keep an eye on this
  166.  enddef;
  167.  
  168. mode_def supre =                % Ultre*setter 2400dpi for super fonts.
  169.  proofing:=0;                   % no, we're not making proofs
  170.  fontmaking:=1;                 % yes, we are making a font
  171.  tracingtitles:=0;              % no, don't show titles at all
  172.  pixels_per_inch:=2400;         % 
  173.  blacker:=0;                    % probably unnecessary at this resolution
  174.  fillin:=0;                     % This unneeded too
  175.  o_correction:=0;               % keep an eye on this
  176.  enddef;
  177.  
  178.  
  179. localfont:=CanonCX;             % the mode most commonly used to make fonts
  180.  
  181. % It is customary to input another file to supplement the PLAIN base.
  182. % This supplementary file adds analogous modes, corresponding to
  183. % local output devices, and it redefines `localfont' as appropriate.
  184. % The values of screen_rows and screen_cols should also be updated.
  185. % The auxiliary file should set base_version:=base_version&"/localname".
  186. % Remember that the present file PLAIN.MF should not be changed;
  187. % all local changes should be confined to a separate file.
  188.  
  189. % Macros to add mode information specials to fonts.
  190.  
  191. def mode_special(suffix $) =
  192.   string s,d;
  193.   s:=str$; d:=decimal scantokens s;
  194.   special s&":="&d&";" enddef;
  195.  
  196. def font_mode_specials =
  197.  p_p_i=pixels_per_inch/mag; 
  198.  if fontmaking > 0:
  199.  begingroup; save d,s,p; save pixels_per_inch;
  200.   string p;
  201.   pixels_per_inch:=p_p_i;
  202.   special jobname;
  203.   mode_special(mag);
  204.   if string mode: p:=mode;
  205.   else: p:=substring(0,length(mode_name[mode])-1) of mode_name[mode]; fi
  206.   special "mode:="&p&";";
  207.   mode_special(pixels_per_inch);
  208.   mode_special(blacker);
  209.   mode_special(fillin);
  210.   mode_special(o_correction);
  211.  endgroup;
  212.  fi
  213. enddef;
  214.  
  215. % Finally, here are macros for Xerox-world font info.
  216. % These can be useful even if you never use a Xerox printer.
  217. % For instance, crudetype uses the |coding_scheme|
  218. % and it is nice to have the font family on record.  Some
  219. % of this goes into the TFM, rather than the GF file.
  220.  
  221. def font_family expr s =  % string s names the font family, e.g., "CMR"
  222.  headerbyte 49: BCPL_string(s,20);
  223.  special "identifier "&s enddef;
  224. def coding_scheme expr s = % string s names the scheme, e.g. "TEX TEXT"
  225.  headerbyte 9: BCPL_string(s,40);
  226.  special "codingscheme "&s enddef;
  227. def font_face_byte expr x = % integer x gives the family member number,
  228.  headerbyte 72: x;          % which should be between 0 and 255
  229.  special "fontfacebyte"; numspecial x enddef;
  230.  
  231. def BCPL_string(expr s,n)= % string s becomes an n-byte BCPL string
  232.  for l:=if length(s)>=n: n-1 else: length(s) fi: l
  233.   for k:=1 upto l: , substring (k-1,k) of s endfor
  234.   for k:=l+2 upto n: , 0 endfor endfor enddef;
  235.  
  236. Xerox_world:=1;    % users can say `if known Xerox_world:...fi'
  237.  
  238. inner end;
  239. def bye=
  240.  if fontmaking > 0:  font_family font_identifier_;
  241.   coding_scheme font_coding_scheme_;
  242.   font_face_byte max(0,254-round 2designsize); 
  243.   font_mode_specials; fi
  244.  end
  245.  enddef;
  246.  
  247. outer bye,end;
  248.